home *** CD-ROM | disk | FTP | other *** search
- 100 'Credit Purchase ("CREDITPURCH")
- 110 CLS
- 120 COLOR 0,15 : PRINT "Credit Purchase" : COLOR 15,0
- 130 DEFDBL A-Z
- 140 MONEYFMT$ = "$$##,###,###.##"
- 150 'Define rounding function
- 160 DEF FNR( V) = SGN( V) * INT (ABS (V) * 100 + .5) / 100
- 170 PRINT: PRINT
- 180 PRINT "Do not enter dollar signs or commas"
- 190 PRINT
- 200 INPUT "Purchase price: ", BALANCE
- 210 INPUT "Annual interest charge (in percent): ", CR
- 220 INPUT "Monthly payment (as percentage of balance): ", RPMT
- 230 INPUT "Minimum monthly payment: ", MINPMT
- 240 INPUT "Annual interest rate on savings (in percent): ", AR
- 250 PRINT "Enter date of first payment"
- 260 INPUT " Month (1-12): ", SMONTH
- 270 INPUT " Year: ", SYEAR
- 280 ' Initialize values
- 290 PR = (1 + AR / 100) ^ (1/12) - 1
- 300 TOTALPAYMENTS = 0
- 310 TOTALINTEREST = 0
- 320 PV = 0
- 330 M = 0
- 340 MONTHNUM = SYEAR * 12 + SMONTH
- 350 PRINT
- 360 PRINT "Press space bar to continue"
- 370 ' Calculate monthly balances
- 380 WHILE BALANCE > 0
- 390 K$ = INKEY$ : IF K$ = "" THEN GOTO 390
- 400 M = M + 1
- 410 YEAR = (MONTHNUM - 1) \ 12
- 420 MONTH = MONTHNUM - YEAR * 12
- 430 MONTHNUM = MONTHNUM + 1
- 440 'Calculate month's payments
- 450 INTERESTDUE = FNR (BALANCE * CR / 1200)
- 460 PMT = INT (BALANCE * RPMT + .5) / 100
- 470 IF PMT < MINPMT THEN PMT = MINPMT
- 480 IF PMT > BALANCE + INTERESTDUE THEN PMT = BALANCE + INTERESTDUE
- 490 BALANCE = FNR (BALANCE - PMT + INTERESTDUE)
- 500 TOTALPAYMENTS = TOTALPAYMENTS + PMT
- 510 PV = PV + PMT * (1 + PR) ^ -M
- 520 TOTALINTEREST = TOTALINTEREST + INTERESTDUE
- 530 'Print results
- 540 PRINT:PRINT
- 550 PRINT "Payment number: "; M
- 560 PRINT "Date: "; MONTH;"/"; YEAR
- 570 PRINT "New balance: "; TAB(30); USING MONEYFMT$; BALANCE
- 580 PRINT "Payment: "; TAB(30); USING MONEYFMT$; PMT
- 590 PRINT "Finance charge: "; TAB(30); USING MONEYFMT$; INTERESTDUE
- 600 PRINT "Cumulative payments: "; TAB(30); USING MONEYFMT$; TOTALPAYMENTS
- 610 PRINT "Cumulative finance charges: "; TAB(30); USING MONEYFMT$; TOTALINTEREST
- 620 PRINT "Present value of payments: "; TAB(30); USING MONEYFMT$; PV
- 640 WEND
- 650 END